home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / Development / Interfaces / QD3DStyle.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-21  |  8.3 KB  |  305 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DStyle.h                                                 **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Style types and routines                                  **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1995 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DStyle_h
  15. #define QD3DStyle_h
  16.  
  17. #ifndef QD3D_h
  18. #include <QD3D.h>
  19. #endif  /*  QD3D_h  */
  20.  
  21. #if PRAGMA_ONCE
  22.     #pragma once
  23. #endif
  24.  
  25. #if defined(__MWERKS__)
  26.     #pragma enumsalwaysint on
  27.     #pragma align_array_members off
  28.     #pragma options align=native
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif    /* __cplusplus */
  34.  
  35.  
  36. /******************************************************************************
  37.  **                                                                             **
  38.  **                    Style Base Class Routines                                 **
  39.  **                                                                             **
  40.  *****************************************************************************/
  41.  
  42. QD3D_EXPORT TQ3ObjectType Q3Style_GetType(
  43.     TQ3StyleObject            style);
  44.  
  45. QD3D_EXPORT TQ3Status Q3Style_Submit(
  46.     TQ3StyleObject            style, 
  47.     TQ3ViewObject            view);
  48.  
  49.  
  50. /******************************************************************************
  51.  **                                                                             **
  52.  **                                 Subdivision                                 **
  53.  **                                                                             **
  54.  *****************************************************************************/
  55.  
  56. typedef enum TQ3SubdivisionMethod {
  57.     kQ3SubdivisionMethodConstant,
  58.     kQ3SubdivisionMethodWorldSpace,
  59.     kQ3SubdivisionMethodScreenSpace
  60. } TQ3SubdivisionMethod;
  61.  
  62.  
  63. typedef struct TQ3SubdivisionStyleData {
  64.     TQ3SubdivisionMethod            method;
  65.     float                            c1;
  66.     float                            c2;
  67. } TQ3SubdivisionStyleData;
  68.  
  69.  
  70. QD3D_EXPORT TQ3StyleObject Q3SubdivisionStyle_New(
  71.     const TQ3SubdivisionStyleData    *data);
  72.  
  73. QD3D_EXPORT TQ3Status Q3SubdivisionStyle_Submit(
  74.     const TQ3SubdivisionStyleData    *data,
  75.     TQ3ViewObject                    view);
  76.  
  77. QD3D_EXPORT TQ3Status Q3SubdivisionStyle_SetData(
  78.     TQ3StyleObject                    subdiv,
  79.     const TQ3SubdivisionStyleData    *data);
  80.  
  81. QD3D_EXPORT TQ3Status Q3SubdivisionStyle_GetData(
  82.     TQ3StyleObject                    subdiv,
  83.     TQ3SubdivisionStyleData            *data);
  84.  
  85.  
  86. /******************************************************************************
  87.  **                                                                             **
  88.  **                                Pick ID                                         **
  89.  **                                                                             **
  90.  *****************************************************************************/
  91.  
  92. QD3D_EXPORT TQ3StyleObject Q3PickIDStyle_New(
  93.     unsigned long            id);
  94.     
  95. QD3D_EXPORT TQ3Status Q3PickIDStyle_Submit(
  96.     unsigned long            id,
  97.     TQ3ViewObject            view);
  98.  
  99. QD3D_EXPORT TQ3Status Q3PickIDStyle_Get(
  100.     TQ3StyleObject            pickIDObject,
  101.     unsigned long            *id);
  102.  
  103. QD3D_EXPORT TQ3Status Q3PickIDStyle_Set(
  104.     TQ3StyleObject            pickIDObject,
  105.     unsigned long            id);
  106.     
  107.     
  108. /******************************************************************************
  109.  **                                                                             **
  110.  **                                Pick Parts                                     **
  111.  **                                                                             **
  112.  *****************************************************************************/
  113.  
  114. typedef enum TQ3PickPartsMasks {
  115.     kQ3PickPartsObject        = 0,
  116.     kQ3PickPartsMaskFace    = 1 << 0,
  117.     kQ3PickPartsMaskEdge    = 1 << 1,
  118.     kQ3PickPartsMaskVertex    = 1 << 2
  119. } TQ3PickPartsMasks;
  120.  
  121. typedef unsigned long TQ3PickParts;
  122.  
  123. QD3D_EXPORT TQ3StyleObject Q3PickPartsStyle_New(
  124.     TQ3PickParts            parts);
  125.     
  126. QD3D_EXPORT TQ3Status Q3PickPartsStyle_Submit(
  127.     TQ3PickParts            parts,
  128.     TQ3ViewObject            view);
  129.  
  130. QD3D_EXPORT TQ3Status Q3PickPartsStyle_Get(
  131.     TQ3StyleObject            pickPartsObject,
  132.     TQ3PickParts            *parts);
  133.  
  134. QD3D_EXPORT TQ3Status Q3PickPartsStyle_Set(
  135.     TQ3StyleObject            pickPartsObject,
  136.     TQ3PickParts            parts);
  137.  
  138.  
  139. /******************************************************************************
  140.  **                                                                             **
  141.  **                        Receive Shadows                                         **
  142.  **                                                                             **
  143.  *****************************************************************************/
  144.  
  145. QD3D_EXPORT TQ3StyleObject Q3ReceiveShadowsStyle_New(
  146.     TQ3Boolean                receives);
  147.     
  148. QD3D_EXPORT TQ3Status Q3ReceiveShadowsStyle_Submit(
  149.     TQ3Boolean                receives,
  150.     TQ3ViewObject            view);
  151.  
  152. QD3D_EXPORT TQ3Status Q3ReceiveShadowsStyle_Get(
  153.     TQ3StyleObject            styleObject,
  154.     TQ3Boolean                *receives);
  155.  
  156. QD3D_EXPORT TQ3Status Q3ReceiveShadowsStyle_Set(
  157.     TQ3StyleObject            styleObject,
  158.     TQ3Boolean                receives);
  159.  
  160.  
  161. /******************************************************************************
  162.  **                                                                             **
  163.  **                            Fill Styles                                         **
  164.  **                                                                             **
  165.  *****************************************************************************/
  166.  
  167. typedef enum TQ3FillStyle {
  168.     kQ3FillStyleFilled,
  169.     kQ3FillStyleEdges,
  170.     kQ3FillStylePoints
  171. } TQ3FillStyle;
  172.  
  173.  
  174. QD3D_EXPORT TQ3StyleObject Q3FillStyle_New(
  175.     TQ3FillStyle             fillStyle);
  176.  
  177. QD3D_EXPORT TQ3Status Q3FillStyle_Submit(
  178.     TQ3FillStyle             fillStyle,
  179.     TQ3ViewObject             view);
  180.  
  181. QD3D_EXPORT TQ3Status Q3FillStyle_Get(
  182.     TQ3StyleObject            styleObject,
  183.     TQ3FillStyle            *fillStyle);
  184.  
  185. QD3D_EXPORT TQ3Status Q3FillStyle_Set(
  186.     TQ3StyleObject            styleObject,
  187.     TQ3FillStyle            fillStyle);
  188.     
  189.     
  190. /******************************************************************************
  191.  **                                                                             **
  192.  **                            Backfacing Styles                                 **
  193.  **                                                                             **
  194.  *****************************************************************************/
  195.  
  196. typedef enum TQ3BackfacingStyle {
  197.     kQ3BackfacingStyleBoth,
  198.     kQ3BackfacingStyleRemove,
  199.     kQ3BackfacingStyleFlip
  200. } TQ3BackfacingStyle;
  201.  
  202. QD3D_EXPORT TQ3StyleObject Q3BackfacingStyle_New(
  203.     TQ3BackfacingStyle        backfacingStyle);
  204.  
  205. QD3D_EXPORT TQ3Status Q3BackfacingStyle_Submit(
  206.     TQ3BackfacingStyle        backfacingStyle,
  207.     TQ3ViewObject            view);
  208.  
  209. QD3D_EXPORT TQ3Status Q3BackfacingStyle_Get(
  210.     TQ3StyleObject            backfacingObject,
  211.     TQ3BackfacingStyle        *backfacingStyle);
  212.  
  213. QD3D_EXPORT TQ3Status Q3BackfacingStyle_Set(
  214.     TQ3StyleObject            backfacingObject,
  215.     TQ3BackfacingStyle        backfacingStyle);
  216.  
  217.  
  218. /******************************************************************************
  219.  **                                                                             **
  220.  **                            Interpolation Types                                 **
  221.  **                                                                             **
  222.  *****************************************************************************/
  223.  
  224. typedef enum TQ3InterpolationStyle {
  225.     kQ3InterpolationStyleNone,
  226.     kQ3InterpolationStyleVertex,
  227.     kQ3InterpolationStylePixel
  228. } TQ3InterpolationStyle;
  229.  
  230. QD3D_EXPORT TQ3StyleObject Q3InterpolationStyle_New(
  231.     TQ3InterpolationStyle    interpolationStyle);
  232.  
  233. QD3D_EXPORT TQ3Status Q3InterpolationStyle_Submit(
  234.     TQ3InterpolationStyle     interpolationStyle,
  235.     TQ3ViewObject            view);
  236.  
  237. QD3D_EXPORT TQ3Status Q3InterpolationStyle_Get(
  238.     TQ3StyleObject            interpolationObject,
  239.     TQ3InterpolationStyle    *interpolationStyle);
  240.  
  241. QD3D_EXPORT TQ3Status Q3InterpolationStyle_Set(
  242.     TQ3StyleObject            interpolationObject,
  243.     TQ3InterpolationStyle    interpolationStyle);
  244.  
  245.  
  246. /******************************************************************************
  247.  **                                                                             **
  248.  **                                Highlight Style                                 **
  249.  **                                                                             **
  250.  *****************************************************************************/
  251.  
  252. QD3D_EXPORT TQ3StyleObject Q3HighlightStyle_New(
  253.     TQ3AttributeSet            highlightAttribute);
  254.     
  255. QD3D_EXPORT TQ3Status Q3HighlightStyle_Submit(
  256.     TQ3AttributeSet            highlightAttribute,
  257.     TQ3ViewObject            view);
  258.  
  259. QD3D_EXPORT TQ3Status Q3HighlightStyle_Get(
  260.     TQ3StyleObject            highlight,
  261.     TQ3AttributeSet            *highlightAttribute);
  262.  
  263. QD3D_EXPORT TQ3Status Q3HighlightStyle_Set(
  264.     TQ3StyleObject            highlight,
  265.     TQ3AttributeSet            highlightAttribute);
  266.  
  267.  
  268. /******************************************************************************
  269.  **                                                                             **
  270.  **                            FrontFacing Direction Styles                     **
  271.  **                                                                             **
  272.  *****************************************************************************/
  273.  
  274. typedef enum TQ3OrientationStyle{
  275.     kQ3OrientationStyleCounterClockwise,
  276.     kQ3OrientationStyleClockwise
  277. } TQ3OrientationStyle;
  278.  
  279. QD3D_EXPORT TQ3StyleObject Q3OrientationStyle_New(
  280.     TQ3OrientationStyle        frontFacingDirection);
  281.  
  282. QD3D_EXPORT TQ3Status Q3OrientationStyle_Submit(
  283.     TQ3OrientationStyle        frontFacingDirection,
  284.     TQ3ViewObject            view);
  285.  
  286. QD3D_EXPORT TQ3Status Q3OrientationStyle_Get(
  287.     TQ3StyleObject            frontFacingDirectionObject,
  288.     TQ3OrientationStyle        *frontFacingDirection);
  289.  
  290. QD3D_EXPORT TQ3Status Q3OrientationStyle_Set(
  291.     TQ3StyleObject            frontFacingDirectionObject,
  292.     TQ3OrientationStyle        frontFacingDirection);
  293.  
  294.  
  295. #ifdef __cplusplus
  296. }
  297. #endif    /* __cplusplus */
  298.  
  299. #if defined(__MWERKS__)
  300. #pragma options align=reset
  301. #pragma enumsalwaysint reset
  302. #endif
  303.  
  304. #endif  /*  QD3DStyle_h  */
  305.